﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Xml;

namespace WarlockXMLTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void buttonSave_Click(object sender, EventArgs e)
        {
            //XML-Dokument mit Root Node erstellen
            XmlDocument doc = new XmlDocument();
            XmlNode rootNode = doc.CreateElement("WarlockMap");
            doc.AppendChild(rootNode);

            //MapInfo Node mit 2 Attributen erstellen
            XmlNode mapInfoNode = doc.CreateElement("MapInfo");
            XmlAttribute mapInfoNameAttribut = doc.CreateAttribute("Name");
            XmlAttribute mapInfoBeschreibungAttribut = doc.CreateAttribute("Beschreibung");
            mapInfoNameAttribut.InnerText = textBox2.Text;
            mapInfoBeschreibungAttribut.InnerText = textBox1.Text;
            //Die 2 Attribute anhängen
            mapInfoNode.Attributes.Append(mapInfoNameAttribut);
            mapInfoNode.Attributes.Append(mapInfoBeschreibungAttribut);
            //Den MapInfoNode an den Root-Node hängen
            rootNode.AppendChild(mapInfoNode);


            //===========================================

            XmlNode mapBestandteileNode = doc.CreateElement("MapBestandteile");

            //Für jedes Tile ein Node erstellen, mit Informationen zum Tile (bräuchte dann natürlich eine doppelte for-Schleife)
            for (int i = 0; i < 3; i++)
            {
                XmlNode levelTile = doc.CreateElement("Tile");
                XmlAttribute levelTileTyp = doc.CreateAttribute("Typ");
                XmlAttribute levelTileTextur = doc.CreateAttribute("Textur");
                XmlAttribute levelTilePosition = doc.CreateAttribute("Position");
                levelTileTextur.InnerText = "Wasser.jpg";
                levelTileTyp.InnerText = "Wasser";
                levelTilePosition.InnerText = "0;" + i;
                levelTile.Attributes.Append(levelTileTextur);
                levelTile.Attributes.Append(levelTileTyp);
                levelTile.Attributes.Append(levelTilePosition);
                mapBestandteileNode.AppendChild(levelTile);
            }

            XmlNode spielerNode = doc.CreateElement("Spieler");
            XmlAttribute spielerStartPosition = doc.CreateAttribute("StartPosition");
            XmlAttribute spielerLebenspunkte = doc.CreateAttribute("Lebenspunkte");
            spielerLebenspunkte.InnerText = "100";
            spielerStartPosition.InnerText = "2;3";
            spielerNode.Attributes.Append(spielerStartPosition);
            spielerNode.Attributes.Append(spielerLebenspunkte);
            mapBestandteileNode.AppendChild(spielerNode);

            rootNode.AppendChild(mapBestandteileNode);

            doc.Save(textBox2.Text + ".xml");

            MessageBox.Show("File wurde im Projektordner gespeichert!");
        }
    }
}